const { defineConfig } = require('@vue/cli-service')
const path = require('path');

const webpack = require('webpack')
const CompressionPlugin = require('compression-webpack-plugin')
const zlib = require('zlib')
const isProduction = process.env.NODE_ENV === 'production'
module.exports = defineConfig({
  /////////////////////////////打包配置//////////////////////////////////////
  publicPath:"./",
  transpileDependencies: true,
  //关闭生产环境的sourcemap
  productionSourceMap:false,
  lintOnSave: false,
  configureWebpack: {
    resolve: {
      alias: {
        '@': path.resolve(__dirname, './src'),
        '@i': path.resolve(__dirname, './src/assets'),
      }
    },
    plugins: [
      new webpack.IgnorePlugin({
        resourceRegExp: /^\.\/locale$/,
        contextRegExp: /moment$/,
      }),
      // 下面两项配置才是 compression-webpack-plugin 压缩配置
      // 压缩成 .gz 文件
      new CompressionPlugin({
        filename: '[path][base].gz',
        algorithm: 'gzip',
        test: /\.js$|\.css$|\.html$/,
        threshold: 10240,
        minRatio: 0.8
      }),
      // 压缩成 .br 文件，如果 zlib 报错无法解决，可以注释这段使用代码，一般本地没问题，需要注意线上服务器会可能发生找不到 zlib 的情况。
      new CompressionPlugin({
        filename: '[path][base].br',
        algorithm: 'brotliCompress',
        test: /\.(js|css|html|svg)$/,
        compressionOptions: {
          params: {
            [zlib.constants.BROTLI_PARAM_QUALITY]: 11
          }
        },
        threshold: 10240,
        minRatio: 0.8
      })
    ]
  },
  //nginx如果配置了这里就不需要配置
  devServer:{
    port:8093,
    proxy: {
      // 代理所有以/api开头的请求
      '/api': {
        target: 'http://124.221.80.137:8989/', // 代理目标的地址，即要请求的真实后端接口地址
        changeOrigin: true, // 开启跨域
        pathRewrite: {
          '^/api': '', // 重写路径，将/api替换为空字符串，实际请求的URL将不包含/api
        },
      },
    },
  },

})
// const path = require('path');

// const webpack = require('webpack')
// const CompressionPlugin = require('compression-webpack-plugin')
// const zlib = require('zlib')
// // const isProduction = process.env.NODE_ENV === 'production'

// module.exports = {
//   configureWebpack: {
//     resolve: {
//       alias: {
//         '@': path.resolve(__dirname, './src'),
//         '@i': path.resolve(__dirname, './src/assets'),
//       }
//     },
//     plugins: [
//       new webpack.IgnorePlugin({
//         resourceRegExp: /^\.\/locale$/,
//         contextRegExp: /moment$/,
//       }),
//       // 下面两项配置才是 compression-webpack-plugin 压缩配置
//       // 压缩成 .gz 文件
//       new CompressionPlugin({
//         filename: '[path][base].gz',
//         algorithm: 'gzip',
//         test: /\.js$|\.css$|\.html$/,
//         threshold: 10240,
//         minRatio: 0.8
//       }),
//       // 压缩成 .br 文件，如果 zlib 报错无法解决，可以注释这段使用代码，一般本地没问题，需要注意线上服务器会可能发生找不到 zlib 的情况。
//       new CompressionPlugin({
//         filename: '[path][base].br',
//         algorithm: 'brotliCompress',
//         test: /\.(js|css|html|svg)$/,
//         compressionOptions: {
//           params: {
//             [zlib.constants.BROTLI_PARAM_QUALITY]: 11
//           }
//         },
//         threshold: 10240,
//         minRatio: 0.8
//       })
//     ]
//   }
// }

